package cn.tedu.justone.pack02;

/**
 * ZZ：JustOne
 * VX：Andylau2020smile
 * DY：JustOne2018
 * ZT：《测试线程的生命状态》
 */
public class Demo57_测试线程的生命状态 {

    //测试线程的生命状态
    //测试线程的生命状态
    //测试线程的生命状态

    //经过测试发现有以下状态
    //NEW
    //RUNNABLE
    //TIMED_WAITING
    //TERMINATED
    //点击源码可以看到有6大状态

    public static void main(String[] args) {
        Thread t1 = new Thread(){
            @Override
            public void run() {
                for (int i = 0; i < 10; i++) {
                    System.out.println(i);
                    mySleep(100);
                }
                System.out.println("执行完毕");
            }
        };

        //观察状态
        Thread.State s = t1.getState();
        System.out.println("状态是"+s);

        t1.start();

        //启动后再观察状态
        s = t1.getState();
        System.out.println("状态是"+s);

        //运行观察状态
        for (int i = 0; i < 30; i++) {
            s = t1.getState();
            System.out.println("状态是"+s);
            mySleep(50);
        }
    }


    //为了让代码更优雅，编写统一的休眠方法
    public static void mySleep(long m){
        try {
            Thread.sleep(m);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}
